/*
 * Copyright 2007 - The JDPF Project Team (http://www.jdpf.org) 
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 * 
 * http://www.apache.org/licenses/LICENSE-2.0 
 * 
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and 
 * limitations under the License. 
 */
package org.jdpf.core.kernel.elements;

import java.util.ArrayList;
import java.util.List;

import org.jdpf.core.plugins.datatypes.AbstractDataType;

/**
 * The tokens container
 * 
 * @author Paolo Ciccarese
 */

public class Token {
	
	private List<AbstractDataType> valueList;
	
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append("Token content:\n");
		if (valueList==null){
		    sb.append("Empty");
		}
		else {
		    for(Object o:valueList) {
		    	sb.append(o.toString()+"\n");
		    }
		}
		return sb.toString();
	}

	public List<AbstractDataType> getValueList() {
		return valueList;
	}
	
	public void addValue(AbstractDataType value) {
		if(valueList == null) valueList = new ArrayList<AbstractDataType>();
		this.valueList.add(value);
	}

	public void setValueList(List<AbstractDataType> valueList) {
		this.valueList = valueList;
	}
	
	/**
	 * @return The canonical name of data type class
	 */
	public String getType(){
		if(valueList==null||valueList.size()==0){
			return "Null";
		}
		//Attention to the index: Somebody could fill the list starting from an
		//index different from the first one that is zero(0)!!!!!!!!!
		return valueList.get(0).getType();
	}
}
